Skip to content

Change includes to improve desbordante performance.#719

Draft
PodushkaPIR wants to merge 8 commits into
Desbordante:mainfrom
PodushkaPIR:fix_includes
Draft

Change includes to improve desbordante performance.#719
PodushkaPIR wants to merge 8 commits into
Desbordante:mainfrom
PodushkaPIR:fix_includes

Conversation

@PodushkaPIR

@PodushkaPIR PodushkaPIR commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

This PR contains changes made using include-what-you-use (version 0.26). Header inclusions now conform to the Google C++ Style Guide.

  1. Added missing #pragma once to header files.
  2. Added IWYU pragmas to protect critical includes:
    • // IWYU pragma: begin_exports / end_exports --- marks headers whose includes are part of public API
    • // IWYU pragma: keep --- prevents IWYU from suggesting removal of includes that are required transitively
  3. Optimized include statements:
    • Removed unnecessary transitive includes
    • Added missing direct includes
    • Updated Boost includes to newer style (e.g., <boost/functional/hash.hpp> -> <boost/container_hash/hash.hpp>)
  4. Replaced C headers with C++ headers (follow modern C++ best practice)

This PR is marked as a Draft because the CI clang-tidy action cannot handle such a large number of files at once. To resolve this, I am splitting these changes into several smaller PRs.

@PodushkaPIR PodushkaPIR force-pushed the fix_includes branch 2 times, most recently from 6a07ab6 to c3fb2de Compare April 9, 2026 14:49
…ructure

Update includes in model data structures, config options, parsers, utility code, and base algorithm classes. Each file now includes only what it directly uses.
Update includes in functional dependency discovery algorithms: Pyro, Tane, HyFD, EulerFD, SFD, FD verifier, AFD metric, and others.
…d OD algorithms

Update includes in inclusion dependency (Mind, Sind, Faida), unique column combination (HyUCC, HPIValid, PyroUCC), and order dependency (FastOD) algorithms.
…gorithms and tests

Update includes in CFD, MD, DC, GFD, NAR, AR, ND, metric, FSM, statistics, DD, and algebraic constraints algorithms. Also update all unit tests.
@PodushkaPIR PodushkaPIR force-pushed the fix_includes branch 4 times, most recently from 09e7cb6 to 87c0195 Compare May 13, 2026 16:31
Headers across the project had includes that nothing directly uses. Removing them prevents unnecessary recompilation and clarifies the dependency graph.

Also remove duplicate boost umbrella/internal includes that IWYU added alongside existing public headers.
Reformat include order and alignment in files modified by IWYU analysis to satisfy CI formatting checks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant